;(function () {
'use strice';
angular.module('services.userManager.customization', [])
	.factory('customizationService', function(Restangular,$rootScope,$state,$cookies) {
		return {
			getModules: getModules,
			saveModules: saveModules,
			initGetModules: initGetModules,
			queryUserModule: queryUserModule
		};

		function getModules(params, callback) {
			Restangular.all('sas/sysMng/user/habitQuery').post(params).then(callback);
		}

		function queryUserModule(params,callback){
			Restangular.all('sas/common/queryUserModule').post(params).then(callback);
		}

		function saveModules(params, callback) {
			Restangular.all('sas/sysMng/user/habitSave').post(params).then(callback);
		}

		function initGetModules() {
			var module = {
				userModules: {},
				modules:[]
			};
			var myParam = {
				userId:$cookies.getObject('userCookie').userId
			};
			getModules(myParam, function(res) {
				module.modules = res.data.allModules;
				angular.forEach(res.data.allModules, function(parent) {
					module.userModules[parent.moduleId] = [];
					module.userModules[parent.moduleId].push(parent.moduleId);
				});
				angular.forEach(res.data.userModules, function(user) {
					angular.forEach(user.childModule, function(child) {
						if (module.userModules[user.moduleId].indexOf !== -1) {
							module.userModules[user.moduleId].push(child.moduleId);
						}
					});
				});
			});
			return module;
		}
	});
})();